package edu.uci.ics.ai.maze.models;

import edu.uci.ics.ai.maze.controllers.SearchContext;
import java.util.List;

public interface SearchAlgorithm {

  /**
   * Returns the name of the search algorithm.  This will be used as the label
   * for the algorithm.
   *
   * @return the algorithm's label
   */
  String getName();

  /**
   * Returns the return path to navigate the maze.
   * 
   * @return the ordered list of vertexes from the start to the finish
   */
  List<Vertex> calculateReturnPath(SearchContext context);
}
